Prisma validator
- aliases
- No value
- tags
- prisma/client
- description
- No value
- links
- https://www.prisma.io/docs/orm/prisma-client/type-safety/prisma-validator 0180 Prisma π
- status
- ai response
- project
- false
- area
- false
- resource
- false
- title
- Prisma validator
- created
- 2025-07-22T16:17:17
- updated
- 2025-07-22T16:24:25
Chat GPT 4.5 answer
Prismaλ κΈ°λ³Έμ μΌλ‘ μμ±λ Model νμ
μ μ 곡νμ§λ§, μ€μ 쿼리ν λ μ¬μ©νλ selectμ includeμ κ²°κ³Όλ κΈ°λ³Έ λͺ¨λΈ νμ
κ³Ό λ€λ₯΄κ² ꡬμ±λ©λλ€. κ·Έλμ κΈ°λ³Έ λͺ¨λΈμ μ§μ νμ
μΌλ‘ μ¬μ©νλ©΄ λμ νλλ κ΄κ³ν νλκ° λλ½λλ λ¬Έμ κ° λ°μν©λλ€.
μ΄λ¬ν κ²½μ°λ Prismaκ° μ 곡νλ Prisma.validator λ° νμ
μ νΈλ¦¬ν°λ₯Ό μ΄μ©ν΄ ν΄κ²°νλ κ²μ΄ κ°μ₯ μ’μ΅λλ€.
β ν΄κ²° λ°©λ²
λ°©λ² 1. Prisma.validator νμ© (κΆμ₯ λ°©μ)
import { Prisma } from '@prisma/client';
const userWithPosts = Prisma.validator<Prisma.UserDefaultArgs>()({
include: { posts: true },
});
type UserWithPosts = Prisma.UserGetPayload<typeof userWithPosts>;
- μ΄λ κ² νλ©΄
UserWithPostsνμ μ μλμΌλ‘ μ°κ΄λpostsνλλ₯Ό ν¬ν¨ν©λλ€.
λ°©λ² 2. μ νΈλ¦¬ν° νμ μ§μ μ¬μ©νκΈ°
μ§μ μ νΈλ¦¬ν° νμ μ μ μν μλ μμ΅λλ€.
import { Prisma } from '@prisma/client';
type UserWithPosts = Prisma.UserGetPayload<{
include: { posts: true };
}>;
μ΄ λ°©λ²λ λμΌν κ²°κ³Όλ₯Ό μ 곡νμ§λ§, νμ μ΄ μμ£Ό μ°μΌ λ μ¬μ¬μ©νκΈ° μ’μ΅λλ€.
βοΈ μ€μ μμ
μλ₯Ό λ€μ΄ User λͺ¨λΈμ΄ μκ³ , ν΄λΉ μ μ μ postsμ profileμ ν¨κ» 리ν΄νλ κ²½μ°λΌλ©΄:
import { PrismaClient, Prisma } from '@prisma/client';
const prisma = new PrismaClient();
const userWithDetails = Prisma.validator<Prisma.UserDefaultArgs>()({
include: { posts: true, profile: true },
});
type UserWithDetails = Prisma.UserGetPayload<typeof userWithDetails>;
async function getUserWithDetails(userId: number): Promise<UserWithDetails | null> {
return prisma.user.findUnique({
where: { id: userId },
include: { posts: true, profile: true },
});
}
μ΄λ κ² νλ©΄ UserWithDetailsλ μ ννκ² λ€μκ³Ό κ°μ νμ
μ κ°κ² λ©λλ€:
type UserWithDetails = {
id: number;
email: string;
name: string | null;
posts: Post[]; // posts λͺ¨λΈ λ°°μ΄ ν¬ν¨
profile: Profile | null; // profile λͺ¨λΈ ν¬ν¨
};
π μ₯μ
-
νμ μμ μ± ν보
-
λμ μΌλ‘ μμ±λ 쿼리μ νμ λλ½ λ°©μ§
-
Prisma κΈ°λ³Έ νμ μ μ¬νμ©μ± κ·Ήλν
μ΄ λ°©λ²μ μ κ·Ήμ μΌλ‘ νμ©νλ©΄ Prismaμ λͺ¨λΈ νμ μ¬νμ© μ νμ μ 보 μμ€ λ¬Έμ λ₯Ό κΉλνκ² ν΄κ²°ν μ μμ΅λλ€.